package com.dev.bbs.service;

import java.util.List;

import com.dev.bbs.bean.BbsSignInfo;
import com.dev.bbs.bean.RankSign;
import com.dev.bbs.domain.BbsUser;
import com.dev.bbs.domain.BbsUserSign;

/**
 * 会员签到Service接口
 * 
 * @author dev
 * @date 2019-09-19
 */
public interface IBbsUserSignService
{
    /**
     * 查询会员签到
     * 
     * @param id 会员签到ID
     * @return 会员签到
     */
    public BbsUserSign selectBbsUserSigninById(Long id);

    /**
     * 查询会员签到列表
     * 
     * @param bbsUserSign 会员签到
     * @return 会员签到集合
     */
    public List<BbsUserSign> selectBbsUserSigninList(BbsUserSign bbsUserSign);

    /**
     * 新增会员签到
     * 
     * @param bbsUserSign 会员签到
     * @return 结果
     */
    public int insertBbsUserSignin(BbsUserSign bbsUserSign);

    /**
     * 修改会员签到
     * 
     * @param bbsUserSign 会员签到
     * @return 结果
     */
    public int updateBbsUserSignin(BbsUserSign bbsUserSign);

    /**
     * 批量删除会员签到
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteBbsUserSigninByIds(String ids);

    /**
     * 删除会员签到信息
     * 
     * @param userSigninId 会员签到ID
     * @return 结果
     */
    public int deleteBbsUserSigninById(Long id);

    /**
     * 获取当日签到的对应数据
     * @param userId
     * @return
     */
    BbsSignInfo getSign(Long userId);

    /**
     * 签到
     * @param user
     * @author zmr
     */
    public BbsSignInfo sign(BbsUser user);

    /**
     * 三榜合一（最新签到、今日最快、连续最多）每5分钟更新一次缓存
     * 
     * @return
     * @author zmr
     */
    public List<List<RankSign>> getSignRank();
}
